From b13b1bffc1eee6e9e080bbd7f20fa1d807ea026d Mon Sep 17 00:00:00 2001 From: "kfraser@localhost.localdomain" Date: Tue, 24 Apr 2007 16:28:37 +0100 Subject: [PATCH] hvm: Fix ioreq structure size to be 32/64-bit invariant. This fixes booting HVM guests with 32-bit dom0 on 64-bit Xen. Signed-off-by: Keir Fraser --- xen/include/public/hvm/ioreq.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/xen/include/public/hvm/ioreq.h b/xen/include/public/hvm/ioreq.h index e9f6495e21..91a4cef924 100644 --- a/xen/include/public/hvm/ioreq.h +++ b/xen/include/public/hvm/ioreq.h @@ -65,9 +65,10 @@ struct ioreq { typedef struct ioreq ioreq_t; struct vcpu_iodata { - struct ioreq vp_ioreq; - /* Event channel port */ - unsigned int vp_eport; /* VMX vcpu uses this to notify DM */ + struct ioreq vp_ioreq; + /* Event channel port, used for notifications to/from the device model. */ + uint32_t vp_eport; + uint32_t _pad0; }; typedef struct vcpu_iodata vcpu_iodata_t; @@ -81,7 +82,7 @@ struct buffered_iopage { unsigned int read_pointer; unsigned int write_pointer; ioreq_t ioreq[IOREQ_BUFFER_SLOT_NUM]; -}; /* sizeof this structure must be in one page */ +}; /* NB. Size of this structure must be no greater than one page. */ typedef struct buffered_iopage buffered_iopage_t; #if defined(__ia64__) -- 2.30.2